home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / CBGRX103.ZIP / contrib / libgrx / src / makefile.tcc < prev    next >
Makefile  |  1993-12-06  |  9KB  |  331 lines

  1. #
  2. # MAKEFILE.TCC
  3. #   for building the Turbo C version of the GRX library
  4. #   usage: make [-DPLANE=<planes>] [-DMODEL=<Turbo C memory model>] [-DDEBUG]
  5. #
  6.  
  7. !if !$d(MODEL)
  8. MODEL = l
  9. !endif
  10.  
  11. !if $d(DEBUG)
  12. TCCDBG= -v
  13. !endif
  14.  
  15. !if !$d(PLANE)
  16. PLANE = 255
  17. TCCLIB= ..\lib\grx$(MODEL).lib
  18. TSTAMP= stamp$(MODEL).tcc
  19. !else
  20. TCCLIB= ..\lib\grx$(PLANE)$(MODEL).lib
  21. TSTAMP= stamp$(PLANE)$(MODEL).tcc
  22. !endif
  23.  
  24. MODE_X= 32
  25. M_8514= 64
  26. M_S3=    128
  27.  
  28. #
  29. # compiler options
  30. #
  31. CPPOPT= -I../include -DGRXPLANES=$(PLANE)
  32. TCCOPT= -O -G -Z -N- -w -d -r -m$(MODEL) $(CPPOPT) $(TCCDBG)
  33.  
  34. #
  35. # default rules:
  36. #    C -> ASM rules are there to look at the generated code
  37. #    when using inline assembly
  38. #
  39. .c.obj:
  40.     tcc -c $(TCCOPT) $(TDEBUG) { $*.c }
  41.  
  42. .c.asm:
  43.     tcc -S $(TCCOPT) $*.c
  44.  
  45. #
  46. # default targets:
  47. #
  48. all:    $(TSTAMP) $(TCCLIB)
  49.  
  50. #
  51. # stamp files for keeping the objects consistent
  52. #
  53. $(TSTAMP): ../include/grx.h
  54.     -del *.obj
  55.     -del stamp*.tcc
  56.     echo stamp >$(TSTAMP)
  57.  
  58.  
  59. #
  60. # objects for building the Turbo C library
  61. #
  62. TINIT=  layout.obj   setmode.obj  context.obj  setclip.obj  colors.obj
  63.  
  64. TMISC=  fileutil.obj reslist.obj  cursor.obj   mouse.obj    bestfont.obj \
  65.     gmalloc.obj  vmalloc.obj  makepat.obj
  66.  
  67. TDRAW=  clear.obj    plot.obj      hline.obj    vline.obj    line.obj     \
  68.     box.obj         fillbox.obj  frambox.obj  circle.obj   pixel.obj     \
  69.     bitblt.obj   drawpoly.obj fillpoly.obj patfbox.obj  scancnvx.obj \
  70.     scanpoly.obj scanfill.obj scanpatt.obj fillcvxp.obj genellip.obj \
  71.     fillcirc.obj patfpoly.obj custcirc.obj \
  72.     patfcvxp.obj patfcirc.obj patfplot.obj patfline.obj \
  73.     solidln.obj  solidpix.obj scanellp.obj polygon.obj  thicklne.obj \
  74.     custline.obj custpoly.obj pattline.obj pattcirc.obj pattpoly.obj
  75.  
  76. TUSER=  usercord.obj uplot.obj      uline.obj    uhline.obj   uvline.obj     \
  77.     ubox.obj     ufillbox.obj uframbox.obj ucircle.obj  upixel.obj     \
  78.     ubestfnt.obj udrawtxt.obj
  79.  
  80. TNCLIP= plotnc.obj   linenc.obj      vlinenc.obj  hlinenc.obj  boxnc.obj     \
  81.     fillbxnc.obj frambxnc.obj pixelnc.obj  bitbltnc.obj
  82.  
  83. TTEXT=  drawtext.obj dumptext.obj loadfont.obj textsize.obj biosfont.obj
  84.  
  85. #
  86. # Turbo C version specific modules
  87. #
  88. TCCAUX= loaddrv.obj  tcgetkey.obj
  89.  
  90. #
  91. # Event queue library objects
  92. #
  93. TEVENT= ../events/event.ob$(MODEL)    ../events/nextevnt.ob$(MODEL)     \
  94.     ../events/evintr.obj
  95.  
  96. #
  97. # low-level mode-dependent drivers
  98. #
  99. !if ($(PLANE) & 1)
  100. P1T=    p1pixrd.obj    p1pixset.obj \
  101.     p1pixrow.obj    p1pixcol.obj \
  102.     p1pixblk.obj    p1bitblt.obj \
  103.     p1line.obj    p1char.obj   \
  104.     p1fillp.obj
  105. !endif
  106.  
  107. !if ($(PLANE) & 4)
  108. P4T=    p4pixrd.obj    p4pixset.obj \
  109.     p4pixrow.obj    p4pixcol.obj \
  110.     p4pixblk.obj    p4bitblt.obj \
  111.     p4line.obj    p4char.obj   \
  112.     p4fillp.obj    p4init.obj
  113. !endif
  114.  
  115. !if ($(PLANE) & ($(M_8514) | $(M_S3) | 8))
  116. P8T=    p8pixrd.obj    p8pixset.obj \
  117.     p8pixrow.obj    p8pixcol.obj \
  118.     p8pixblk.obj    p8bitblt.obj \
  119.     p8line.obj    p8char.obj   \
  120.     p8fillp.obj    p8init.obj
  121. !endif
  122.  
  123. !if ($(PLANE) & $(MODE_X))
  124. PXT=    pxpixrd.obj    pxpixset.obj \
  125.     pxpixrow.obj    pxpixcol.obj \
  126.     pxpixblk.obj    pxbitblt.obj \
  127.     pxline.obj    pxchar.obj   \
  128.     pxfillp.obj
  129. !endif
  130.  
  131. !if ($(PLANE) & ($(M_8514) | $(M_S3)))
  132. PIT=    pipixrd.obj    pipixset.obj \
  133.     pipixrow.obj    pipixcol.obj \
  134.     pipixblk.obj    pibitblt.obj \
  135.     piline.obj    pichar.obj   \
  136.     pifillp.obj    piinit.obj
  137. !endif
  138.  
  139. !if($(PLANE) & $(M_S3))
  140. PST=    pschar.obj    psfillp.obj
  141. !endif
  142.  
  143. !if ($(PLANE) != 1)  && ($(PLANE) != 4)  && ($(PLANE) != 8)
  144. !if ($(PLANE) != 16) && ($(PLANE) != 32) && ($(PLANE) != 64)
  145. !if ($(PLANE) != 128)
  146. SWT=    swpixrd.obj    swpixset.obj \
  147.     swpixrow.obj    swpixcol.obj \
  148.     swpixblk.obj    swbitblt.obj \
  149.     swline.obj    swchar.obj   \
  150.     swfillp.obj    voiddrv.obj
  151. !endif
  152. !endif
  153. !endif
  154.  
  155. #
  156. # build the library
  157. #
  158. TCCOBJ= $(TINIT)    $(TMISC)    $(TDRAW)    $(TUSER)    $(TNCLIP)   \
  159.     $(TTEXT)    $(TCCAUX)    $(P1T)        $(P4T)    $(P8T)        \
  160.     $(PXT)        $(PIT)    $(PST)        $(SWT)    _todo.obj
  161.  
  162. $(TCCLIB): $(TCCOBJ) ..\utils\tlibcvt.exe
  163.     -del $(TCCLIB)
  164.     ..\utils\tlibcvt + &&!
  165.     $(TCCOBJ)
  166.     $(TEVENT)
  167. !    $(TMP)\tlib.cmd
  168.     tlib $(TCCLIB) /C @$(TMP)\tlib.cmd
  169.  
  170. ..\utils\tlibcvt.exe: ..\utils\tlibcvt.c
  171.     cd ..\utils
  172.     tcc tlibcvt.c
  173.     del tlibcvt.obj
  174.     cd ..\src
  175.  
  176. #
  177. # dependencies
  178. #
  179. INC=        ../include
  180. GRX_H=        $(INC)/grx.h libgrx.h
  181. LINECLIP_H=    lineclip.h scale.h clipping.h
  182. USERCORD_H=    usercord.h scale.h
  183. P4_H=        $(GRX_H) p4.h vgaregs.h
  184. P8_H=        $(GRX_H) p8.h vgaregs.h
  185. P8514A_H=    $(GRX_H) p8514a.h reg8514a.h
  186.  
  187. bestfont.obj:    $(GRX_H) $(INC)/grxfile.h gmalloc.h
  188. biosfont.obj:    $(GRX_H) $(INC)/grxfont.h $(INC)/grxfile.h interrup.h
  189. bitblt.obj:    $(GRX_H) clipping.h
  190. bitbltnc.obj:    $(GRX_H)
  191. box.obj:    $(GRX_H)
  192. boxnc.obj:    $(GRX_H) fakeclip.h box.c
  193. circle.obj:    $(GRX_H)
  194. clear.obj:    $(GRX_H)
  195. colors.obj:    $(GRX_H) interrup.h gmalloc.h reg8514a.h
  196. context.obj:    $(GRX_H) clipping.h gmalloc.h
  197. cursor.obj:    $(GRX_H) $(INC)/mousex.h gmalloc.h
  198. custcirc.obj:    $(GRX_H) thicklne.h
  199. custline.obj:    $(GRX_H) thicklne.h
  200. custpoly.obj:    $(GRX_H) thicklne.h
  201. drawpoly.obj:    $(GRX_H)
  202. drawtext.obj:    $(GRX_H) $(INC)/grxfont.h clipping.h gmalloc.h memfill.h memcopy.h
  203. dumptext.obj:    $(GRX_H) $(INC)/grxfont.h clipping.h
  204. fileutil.obj:    $(GRX_H) $(INC)/grxfile.h
  205. fillbox.obj:    $(GRX_H) clipping.h
  206. fillbxnc.obj:    $(GRX_H) fakeclip.h fillbox.c
  207. fillcirc.obj:    $(GRX_H)
  208. fillcvxp.obj:    $(GRX_H)
  209. fillpoly.obj:    $(GRX_H)
  210. frambox.obj:    $(GRX_H)
  211. frambxnc.obj:    $(GRX_H) fakeclip.h frambox.c
  212. genellip.obj:    $(GRX_H)
  213. gmalloc.obj:    gmalloc.h
  214. hline.obj:    $(GRX_H) clipping.h
  215. hlinenc.obj:    $(GRX_H) fakeclip.h hline.c
  216. layout.obj:    $(GRX_H)
  217. line.obj:    $(GRX_H) $(LINECLIP_H)
  218. linenc.obj:    $(GRX_H) fakeclip.h line.c
  219. loaddrv.obj:    $(GRX_H) $(INC)/grxfile.h $(INC)/grxfont.h gmalloc.h
  220. loadfont.obj:    $(GRX_H)
  221. makepat.obj:    $(GRX_H) $(INC)/mousex.h interrup.h clipping.h $(EVTINC)
  222. mouse.obj:    $(GRX_H) clipping.h
  223. patfbox.obj:    $(GRX_H)
  224. patfcirc.obj:    $(GRX_H)
  225. patfcvxp.obj:    $(GRX_H) $(LINECLIP_H)
  226. patfline.obj:    $(GRX_H) clipping.h
  227. patfplot.obj:    $(GRX_H)
  228. patfpoly.obj:    $(GRX_H) thicklne.h
  229. pattcirc.obj:    $(GRX_H) thicklne.h
  230. pattline.obj:    $(GRX_H) thicklne.h
  231. pattpoly.obj:    $(GRX_H) clipping.h
  232. pixel.obj:    $(GRX_H) fakeclip.h pixel.c
  233. pixelnc.obj:    $(GRX_H) clipping.h
  234. plot.obj:    $(GRX_H) fakeclip.h plot.c
  235. plotnc.obj:    $(GRX_H)
  236. polygon.obj:    $(GRX_H) $(INC)/grxfile.h gmalloc.h
  237. reslist.obj:    $(GRX_H) clipping.h
  238. scanellp.obj:    $(GRX_H) clipping.h scale.h
  239. scancnvx.obj:    $(GRX_H) clipping.h
  240. scanfill.obj:    $(GRX_H) clipping.h
  241. scanpatt.obj:    $(GRX_H) clipping.h scale.h gmalloc.h
  242. scanpoly.obj:    $(GRX_H) clipping.h
  243. setclip.obj:    $(GRX_H) $(INC)/grdriver.h
  244. setmode.obj:    $(GRX_H) lineclip.h
  245. solidln.obj:    $(GRX_H) clipping.h
  246. solidpix.obj:    $(GRX_H) $(INC)/grxfont.h
  247. textsize.obj:    $(GRX_H) thicklne.h clipping.h
  248. tcgetkey.obj:    $(GRX_H) scale.h
  249. thicklne.obj:    $(GRX_H) $(USERCORD_H)
  250. ubestfnt.obj:    $(GRX_H) $(USERCORD_H)
  251. ubox.obj:    $(GRX_H) $(USERCORD_H)
  252. ucircle.obj:    $(GRX_H) $(USERCORD_H)
  253. udrawtxt.obj:    $(GRX_H) $(USERCORD_H)
  254. ufillbox.obj:    $(GRX_H) $(USERCORD_H)
  255. uframbox.obj:    $(GRX_H) $(USERCORD_H)
  256. uhline.obj:    $(GRX_H) $(USERCORD_H)
  257. uline.obj:    $(GRX_H) $(USERCORD_H)
  258. upixel.obj:    $(GRX_H) $(USERCORD_H)
  259. uplot.obj:    $(GRX_H) $(USERCORD_H)
  260. usercord.obj:    $(GRX_H) clipping.h
  261. uvline.obj:    $(GRX_H) fakeclip.h vline.c
  262. vline.obj:    gmalloc.h
  263.  
  264. vlinenc.obj:    $(GRX_H)
  265. vmalloc.obj:    $(GRX_H)
  266. p1bitblt.obj:    $(GRX_H)
  267. p1char.obj:    $(GRX_H)
  268. p1fillp.obj:    $(GRX_H)
  269. p1line.obj:    $(GRX_H)
  270. p1pixblk.obj:    $(GRX_H)
  271. p1pixcol.obj:    $(GRX_H)
  272. p1pixrd.obj:    $(GRX_H)
  273.  
  274. p4init.obj:    $(P4_H) gmalloc.h $(INC)/grdriver.h
  275. p4bitblt.obj:    $(P4_H) memcopy.h bitcopy.h gmalloc.h
  276. p4char.obj:    $(P4_H) memfill.h memcopy.h bitdraw.h
  277. p4fillp.obj:    $(P4_H) memfill.h memcopy.h
  278. p4line.obj:    $(P4_H) bitdraw.h
  279. p4pixblk.obj:    $(P4_H) memfill.h memcopy.h
  280. p4pixcol.obj:    $(P4_H) memfill.h
  281. p4pixrd.obj:    $(P4_H)
  282. p4pixrow.obj:    $(P4_H) memfill.h memcopy.h
  283. p4pixset.obj:    $(P4_H)
  284.  
  285. p8init.obj:    $(P8_H) $(INC)/grdriver.h
  286. p8bitblt.obj:    $(P8_H) memcopy.h gmalloc.h
  287. p8char.obj:    $(P8_H) bytedraw.h
  288. p8fillp.obj:    $(P8_H) memcopy.h bytedraw.h gmalloc.h
  289. p8line.obj:    $(P8_H) bytedraw.h
  290. p8pixblk.obj:    $(P8_H) memfill.h
  291. p8pixcol.obj:    $(P8_H) memfill.h
  292. p8pixrd.obj:    $(P8_H)
  293. p8pixrow.obj:    $(P8_H) memfill.h
  294. p8pixset.obj:    $(P8_H)
  295.  
  296. piinit.obj:    $(P8514A_H)
  297. pibitblt.obj:    $(P8514A_H)
  298. pichar.obj:    $(P8514A_H)
  299. pifillp.obj:    $(P8514A_H)
  300. piline.obj:    $(P8514A_H)
  301. pipixblk.obj:    $(P8514A_H)
  302. pipixcol.obj:    $(P8514A_H)
  303. pipixrd.obj:    $(P8514A_H)
  304. pipixrow.obj:    $(P8514A_H)
  305. pipixset.obj:    $(P8514A_H)
  306.  
  307. pschar.obj:    $(P8514A_H)
  308. psfillp.obj:    $(P8514A_H)
  309.  
  310. pxbitblt.obj:    $(GRX_H)
  311. pxchar.obj:    $(GRX_H)
  312. pxfillp.obj:    $(GRX_H)
  313. pxline.obj:    $(GRX_H)
  314. pxpixblk.obj:    $(GRX_H)
  315. pxpixcol.obj:    $(GRX_H)
  316. pxpixrd.obj:    $(GRX_H)
  317. pxpixrow.obj:    $(GRX_H)
  318. pxpixset.obj:    $(GRX_H)
  319.  
  320. swbitblt.obj:    $(GRX_H)
  321. swchar.obj:    $(GRX_H)
  322. swfillp.obj:    $(GRX_H)
  323. swline.obj:    $(GRX_H)
  324. swpixblk.obj:    $(GRX_H)
  325. swpixcol.obj:    $(GRX_H)
  326. swpixrd.obj:    $(GRX_H)
  327. swpixrow.obj:    $(GRX_H)
  328. swpixset.obj:    $(GRX_H)
  329. voiddrv.obj:    $(GRX_H)
  330.  
  331.